home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 5
/
Aminet 5 - March 1995.iso
/
Aminet
/
misc
/
amag
/
AM9411_6.lha
/
XASS 64
/
XAss 1.0
/
Include
/
Basic-Start.inc
< prev
next >
Wrap
Text File
|
1992-10-31
|
3KB
|
58 lines
; ***************************
; *** Basic-Start.inc ***
; ***************************
; DIESE DATEI DARF NIE BEDINGT EINGEBUNDEN WERDEN!
; Als Anwendungsbeispiel siehe "Transfer.src".
; Includedatei für CrossAss V1.0. Generiert Basic-Kopf für Assembler-
; programme, so daß diese wie Basicprogramme mit LOAD "...",8 geladen und mit
; RUN gestartet werden können. Benötigt "C64.con" als Konvertierungstabelle.
; Vor der Einbindung dieser Datei müssen im aufrufenden Programm,
; das den Basic-Kopf bekommen soll, einige Vorbereitungen getroffen werden:
; 1. Es muß ein ".base"-Pseudo-Opcode vor der Einbindung die Startadresse
; auf 2049 (=$801) setzen (Basicanfang). Sollte der Programmcounter beim
; Einbinden der Datei nicht 2049 sein, so wird ein Fehler erzeugt, der
; die Assemblierung abbricht (Division durch 0).
; 2. Das Definition des Label "BS_Return" bestimmt das Aussehen des zu
; erzeugenden Basic-Kopfes:
; BS_Return nicht definiert:
; <Zeilennr> sys <startadr> <Text>
; BS_Return definiert:
; <Zeilennr> sys <startadr>:rem <Text>
; Soll aus dem laufenden Programm zum Basicinterpreter per RTS
; zurückgesprungen werden, muß NoReturn definiert sein, da der
; angefügte Kommentarstext sonst einen "?SYNTAX ERROR" hervorrufen
; würde. Der eigentliche Wert von BS_Return hat keinen Einfluß.
; 3. Das Label "BS_Line" bestimmt die Zeilennr. des Basic-Kopfs
; 4. Der Einsprung im Hauptprogramm muß durch das Label "BS_Start"
; gekennzeichnet sein (Diese Adresse erscheint dann hinter dem SYS-Befehl)
; 5. Zur Angabe eines Kommentarstext (z.B. einer Copyright-Meldung) wie in
; obigen Schemata, muß ein Makro "BS_Text" definiert werden, das nur ein
; ".ASCII"-Pseudo-Opcode mit dem entsprechenden Text enthält.
.if !,*,2049 ;PC ungleich 2049 ?
.if !,1/0,1 ;Fehler (in Pass 1) erzeugen
.endif ;Dummy-IF schließen
.endif ;PC = 2049 -> weiter
.word Line2 ;Adresse nächste Zeile
.word BS_Line ;Zeilennummer
.byte 158 ;Token SYS-Befehl
.byte 32 ;Leerzeichen
;Startadresse in ASCII wandeln
.byte BS_Start/10000+'0
.byte BS_Start/1000-BS_Start/10000*10+'0
.byte BS_Start/100-BS_Start/1000*10+'0
.byte BS_Start/10-BS_Start/100*10+'0
.byte BS_Start-BS_Start/10*10+'0
.if =,BS_Return ;BS_Return definiert ?
.byte ': ;Doppelpunkt einfügen
.byte 143 ;Token REM-Befehl
.endif
.byte 32 ;Leerzeichen einfügen
BS_Text ;Makroaufruf: Text einfügen
Line2 .byte 0,0,0 ;Zeilenendemarkierung